Storage systems, such as solid state drives (SSDs) including NAND flash memory, are commonly used in electronic systems ranging from consumer products to enterprise-level computer systems. Cloud providers that use enterprise SSDs often have multiple tenants accessing each SSD simultaneously. A tenant's SSD accesses may be identified by the host protocol which assigns a stream ID, namespace or some other unique identifier to all reads and writes to the drive. Each tenant typically wants the highest performance obtainable whereas the cloud provider needs to be able to reduce costs by improving drive endurance while remaining competitive. This puts the needs of the tenant at odds with those of the cloud provider.
This conflict between the needs of the cloud provider and the tenant may be exacerbated by tenants frequently being active at different times. For example, one tenant might be based in a different time zone than other tenants so the intensity of the workload on a shared SSD will alter depending on the time of the day. Because each tenant has some degree of over-provisioning (OP) associated with their stored data, as soon as their workload drops or becomes inactive the overall OP of the SSD may effectively be reduced thereby restricting overall performance (for example, input/output operations per second, or TOPS) and may also reduce the SSD's endurance. Changes in workload from the different tenants of an SSD may also lead to increased write amplification.